package com.fowo.api.model.supplier.invoice.order.product;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * 供应商发货单子表 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class SupplierInvoiceOrderProductImportPo {

  /** 所属供应商发货单 */
  @ExcelProperty("所属供应商发货单")
  @Size(max = 200, message = "所属供应商发货单长度不能超过200")
  private String parentSupplierInvoiceOrderSupplierId;

  @ExcelIgnore
  @Schema(title = "所属供应商发货单")
  private String parentSupplierInvoiceOrder;

  /** 所属发货单 */
  @ExcelProperty("所属发货单")
  @Size(max = 50, message = "所属发货单长度不能超过50")
  private String supplierInvoiceOrderId;

  /** 发货量 */
  @ExcelProperty("发货量")
  @IntegerString(message = "发货量数值格式不正确", label = "发货量")
  private String sendQuantity;

  /** 总净重 */
  @ExcelProperty("总净重")
  @DecimalString(message = "总净重小数格式不正确", label = "总净重")
  private String totalSuttle;

  /** 总毛重 */
  @ExcelProperty("总毛重")
  @DecimalString(message = "总毛重小数格式不正确", label = "总毛重")
  private String totalGross;

  /** 总体积 */
  @ExcelProperty("总体积")
  @DecimalString(message = "总体积小数格式不正确", label = "总体积")
  private String totalVolume;

  /** 品名 */
  @ExcelProperty("品名")
  @Size(max = 500, message = "品名长度不能超过500")
  private String nameName;

  @ExcelIgnore
  @Schema(title = "品名")
  private String name;

  /** SKU */
  @ExcelProperty("SKU")
  @Size(max = 50, message = "SKU长度不能超过50")
  private String sku;

  /** 税费 */
  @ExcelProperty("税费")
  @Size(max = 50, message = "税费长度不能超过50")
  private String taxAmount;

  /** 箱数 */
  @ExcelProperty("箱数")
  @IntegerString(message = "箱数数值格式不正确", label = "箱数", min = 0)
  private String boxNum;

  /** 箱规名称 */
  @ExcelProperty("箱规名称")
  @Size(max = 50, message = "箱规名称长度不能超过50")
  private String boxList;

  /** 箱子毛重（kg） */
  @ExcelProperty("箱子毛重（kg）")
  @DecimalString(
    message = "箱子毛重（kg）小数格式不正确",
    label = "箱子毛重（kg）"
  )
  private String boxGross;

  /** 箱子长(cm) */
  @ExcelProperty("箱子长(cm)")
  @DecimalString(message = "箱子长(cm)小数格式不正确", label = "箱子长(cm)")
  private String boxLength;

  /** 箱子宽 */
  @ExcelProperty("箱子宽")
  @DecimalString(message = "箱子宽小数格式不正确", label = "箱子宽")
  private String boxWidth;

  /** 箱子高 */
  @ExcelProperty("箱子高")
  @DecimalString(message = "箱子高小数格式不正确", label = "箱子高")
  private String boxHeight;

  /** 单箱数量 */
  @ExcelProperty("单箱数量")
  @DecimalString(message = "单箱数量小数格式不正确", label = "单箱数量")
  private String quantityInCase;

  /** 总重量（kg） */
  @ExcelProperty("总重量（kg）")
  @DecimalString(message = "总重量（kg）小数格式不正确", label = "总重量（kg）")
  private String tatolWeight;

  /** 总体积重 */
  @ExcelProperty("总体积重")
  @DecimalString(message = "总体积重小数格式不正确", label = "总体积重")
  private String tatolVolumeWeight;

  /** 单品净重 */
  @ExcelProperty("单品净重")
  @DecimalString(message = "单品净重小数格式不正确", label = "单品净重")
  private String oneSuttle;

  /** 单品毛重 */
  @ExcelProperty("单品毛重")
  @DecimalString(message = "单品毛重小数格式不正确", label = "单品毛重")
  private String oneGross;

  /** 包装规格（cm）长 */
  @ExcelProperty("包装规格（cm）长")
  @DecimalString(
    message = "包装规格（cm）长小数格式不正确",
    label = "包装规格（cm）长"
  )
  private String packageLength;

  /** 包装规格（cm）宽 */
  @ExcelProperty("包装规格（cm）宽")
  @DecimalString(
    message = "包装规格（cm）宽小数格式不正确",
    label = "包装规格（cm）宽"
  )
  private String packageWeight;

  /** 包装规格（cm）高 */
  @ExcelProperty("包装规格（cm）高")
  @DecimalString(
    message = "包装规格（cm）高小数格式不正确",
    label = "包装规格（cm）高"
  )
  private String packageHeight;
}
